﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microhard.WeixinMP.Models;

namespace Microhard.WeixinMP.Interfaces
{
    public interface IWeixinMP
    {
        bool Handshake(WeixinHandshakeModel handshake);
        bool Login(string mpUsername, string mpPassword, IWeixinMPHtmlParser<WeixinFakeLogin_Result> parser, bool reLogin);
        List<WeixinUserModel> GetTop10User(string mpUsername, string mpPassword, IWeixinMPHtmlParser<List<WeixinUserBasicModel>> parser, IWeixinMPHtmlParser<WeixinUserModel> parseUserInfo, IWeixinMPHtmlParser<WeixinFakeLogin_Result> loginParser);
        void SendMessage(string mpUsername, string mpPassword, string fakeID, string text, IWeixinMPHtmlParser<WeixinFakeSendResult> parser, IWeixinMPHtmlParser<WeixinFakeLogin_Result> loginParser, bool reLogin);
        bool RecordMessage(RequestServiceModel msg, string mpAccountUserName);
        string UploadImage(string mpUsername, string mp, string fileName, byte[] image, IWeixinMPHtmlParser<WeixinUploadResult> resultParser);
        List<WXMPMessageWithFakeIDModel> GetTop50Message(string mpUsername, string mpPassword, IWeixinMPHtmlParser<List<WXMPMessageWithFakeIDModel>> resultParser);
        void LogonOff(string mpUsername);
        bool HasFakeID(string weixinName);
    }
}
